#pragma once
#include <boost/beast/http.hpp>
#include <boost/beast.hpp>
#include <boost/asio.hpp>
#include <memory>
#include "const.h"

//1.ioc不允许复制：保证资源唯一性，所以只能通过&传递
//2.引用只能在初始化列表中进行
//3.不允许对非常量引用使用右值复制
//4.不能剥夺资源管理权限，所以只能使用非常量左值引用。

class CServer : public std::enable_shared_from_this<CServer>
{

private:
	tcp::acceptor _acceptor;													//监听者服务
	net::io_context& _ioc;														//上下文,不可复制，只能在构造函数的初始化列表中进行，否则会触发
	boost::asio::ip::tcp::socket _socket;										//监听文件符，通过ioc进行环境注册
public:
	CServer(boost::asio::io_context& ioc,unsigned short& port);					//设置acceptor状态，设置socket状态

	void Start();

private:


};

